package collection_test.list_map;

import java.util.concurrent.CopyOnWriteArrayList;

public class CopyOnWriteListTest {
    public static void main(String[] args) {
        /**
         *   CopyOnWriteArrayList    写时复制，  读时不加锁。   写时加锁，  在
         *   写的过程时，会先复制一个新的数组，然后将新增的元素添加到新数组中，最后再将原引用指向新的数组
         *   这样对于读来说，其实是没有影响的。
         */
        CopyOnWriteArrayList copyOnWriteArrayList = new CopyOnWriteArrayList();
        copyOnWriteArrayList.add(1);
        new Thread(() -> {
            Object o = copyOnWriteArrayList.get(0);
            System.out.println(123);
        }).start();
        new Thread(() -> {
            Object remove = copyOnWriteArrayList.remove(0);
            System.out.println(123);

        }).start();
    }
}
